<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Chinwil</title><description>Chinwil Blog Site</description><link>https://chinwilblog.eu.cc/</link><language>zh_CN</language><item><title>Include Video in the Posts</title><link>https://chinwilblog.eu.cc/posts/daily/jilu1/</link><guid isPermaLink="true">https://chinwilblog.eu.cc/posts/daily/jilu1/</guid><description>This post demonstrates how to include embedded video in a blog post.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Just copy the embed code from Bilibili or other platforms, and paste it in the markdown file.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;---
title: Include Video in the Post
published: 2023-10-19
// ...
---

&amp;lt;iframe width=&quot;100%&quot; height=&quot;468&quot; src=&quot;https://player.bilibili.com/player.html?bvid=BV1R54y1J79s&quot; scrolling=&quot;no&quot; border=&quot;0&quot; frameborder=&quot;no&quot; framespacing=&quot;0&quot; allowfullscreen=&quot;true&quot;&amp;gt; &amp;lt;/iframe&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Bilibili&lt;/h2&gt;
&lt;p&gt;&amp;lt;iframe width=&quot;100%&quot; height=&quot;468&quot; src=&quot;https://player.bilibili.com/player.html?bvid=BV1R54y1J79s&quot; scrolling=&quot;no&quot; border=&quot;0&quot; frameborder=&quot;no&quot; framespacing=&quot;0&quot; allowfullscreen=&quot;true&quot;&amp;gt; &amp;lt;/iframe&amp;gt;&lt;/p&gt;
</content:encoded></item><item><title>Include Video in the Posts</title><link>https://chinwilblog.eu.cc/posts/res/dongman/</link><guid isPermaLink="true">https://chinwilblog.eu.cc/posts/res/dongman/</guid><description>This post demonstrates how to include embedded video in a blog post.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Just copy the embed code from Bilibili or other platforms, and paste it in the markdown file.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;---
title: Include Video in the Post
published: 2023-10-19
// ...
---

&amp;lt;iframe width=&quot;100%&quot; height=&quot;468&quot; src=&quot;https://player.bilibili.com/player.html?bvid=BV1R54y1J79s&quot; scrolling=&quot;no&quot; border=&quot;0&quot; frameborder=&quot;no&quot; framespacing=&quot;0&quot; allowfullscreen=&quot;true&quot;&amp;gt; &amp;lt;/iframe&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Bilibili&lt;/h2&gt;
&lt;p&gt;&amp;lt;iframe width=&quot;100%&quot; height=&quot;468&quot; src=&quot;https://player.bilibili.com/player.html?bvid=BV1R54y1J79s&quot; scrolling=&quot;no&quot; border=&quot;0&quot; frameborder=&quot;no&quot; framespacing=&quot;0&quot; allowfullscreen=&quot;true&quot;&amp;gt; &amp;lt;/iframe&amp;gt;&lt;/p&gt;
</content:encoded></item><item><title>bilibili 视频站外播放器：输入 URL 自动解析为 player.bilibili.com</title><link>https://chinwilblog.eu.cc/posts/script/bili_transfer_player/</link><guid isPermaLink="true">https://chinwilblog.eu.cc/posts/script/bili_transfer_player/</guid><description>b站视频转站外播放脚本</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;1. 脚本展示&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;import re
from urllib.parse import urlparse, parse_qs, urlencode


def parse_bili(url: str):
    &quot;&quot;&quot;
    解析 B 站链接：
    - 普通视频：提取 BV 号 + 分页 p
    - 番剧：提取 ep 号 + 分页 p
    返回 (type, id, page) 或 None
    &quot;&quot;&quot;
    if not url:
        return None

    page = None

    # 补齐协议头
    safe_url = url
    if not safe_url.startswith(&quot;http&quot;):
        if safe_url.startswith(&quot;//&quot;):
            safe_url = &quot;https:&quot; + safe_url
        else:
            safe_url = &quot;https://&quot; + safe_url

    # 解析 p 参数
    if &quot;.&quot; in safe_url and &quot;?&quot; in safe_url:
        parsed = urlparse(safe_url)
        params = parse_qs(parsed.query)
        p = params.get(&quot;p&quot;, [None])[0]
        if p and p.isdigit():
            page = p

    # 1. 普通视频：bilibili.com/video/BVxxxx
    if &quot;bilibili.com/video/&quot; in url:
        bv_match = re.search(r&quot;BV[0-9A-Za-z]+&quot;, url)
        if bv_match:
            return (&quot;video&quot;, bv_match.group(0), page)

    # 2. 番剧：bilibili.com/bangumi/play/epxxxx 或 ssxxxx
    if &quot;bilibili.com/bangumi/play/&quot; in url:
        ep_match = re.search(r&quot;ep(\d+)&quot;, url)
        if ep_match:
            return (&quot;bangumi_ep&quot;, ep_match.group(1), page)
        ss_match = re.search(r&quot;ss(\d+)&quot;, url)
        if ss_match:
            return (&quot;bangumi_ss&quot;, ss_match.group(1), page)

    return None


def build_embed_url(kind: str, vid: str, page: str = None) -&amp;gt; str:
    &quot;&quot;&quot;构建 B 站嵌入播放器 URL&quot;&quot;&quot;
    base = &quot;https://player.bilibili.com/player.html&quot;
    params = {}

    if kind == &quot;video&quot;:
        params[&quot;bvid&quot;] = vid
    elif kind == &quot;bangumi_ep&quot;:
        params[&quot;ep_id&quot;] = vid
    elif kind == &quot;bangumi_ss&quot;:
        params[&quot;season_id&quot;] = vid

    if page:
        params[&quot;p&quot;] = page

    return f&quot;{base}?{urlencode(params)}&quot;


def main():
    print(&quot;=== B 站视频/番剧解析工具 ===&quot;)
    print(&quot;支持：&quot;)
    print(&quot;  - 普通视频：https://www.bilibili.com/video/BVxxxx&quot;)
    print(&quot;  - 番剧：    https://www.bilibili.com/bangumi/play/epxxxx&quot;)
    print(&quot;输入 q 退出\n&quot;)

    while True:
        url = input(&quot;请输入 B 站链接：&quot;).strip()

        if url.lower() in (&quot;q&quot;, &quot;quit&quot;, &quot;exit&quot;):
            print(&quot;已退出。&quot;)
            break

        result = parse_bili(url)

        if not result:
            print(&quot;❌ 无法识别该链接，请确认是 B 站视频或番剧链接\n&quot;)
            continue

        kind, vid, page = result
        embed_url = build_embed_url(kind, vid, page)

        kind_name = {
            &quot;video&quot;: &quot;普通视频&quot;,
            &quot;bangumi_ep&quot;: &quot;番剧（EP）&quot;,
            &quot;bangumi_ss&quot;: &quot;番剧（SS）&quot;,
        }[kind]

        print(f&quot;\n✅ 解析成功&quot;)
        print(f&quot;   类型: {kind_name}&quot;)
        print(f&quot;   ID:   {vid}&quot;)
        print(f&quot;   分页: {page if page else &apos;未指定&apos;}&quot;)
        print(f&quot;   嵌入链接: {embed_url}&quot;)
        print(f&quot;\n   可复制到 iframe 中使用：&quot;)
        print(f&apos;   &amp;lt;iframe src=&quot;{embed_url}&quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;\n&apos;)


if __name__ == &quot;__main__&quot;:
    main()
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;2. 脚本执行结果&lt;/h1&gt;
&lt;p&gt;&lt;img src=&quot;./bili_to_player2.jpg&quot; alt=&quot;bili_to_player2&quot; title=&quot;bili_to_player2&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;2.1 样例&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;执行 python bili_parser_player.py
输入 https://www.bilibili.com/video/BV1Ed426vEdg/?spm_id_from=333.1391.0.0&amp;amp;vd_source=9bf33f1fe1a3e1e389c295a4433cecca
输出 &amp;lt;iframe src=&quot;https://player.bilibili.com/player.html?bvid=BV1Ed426vEdg&quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;2.2 结果展示&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;稍加修饰
&amp;lt;iframe width=&quot;100%&quot; height=&quot;468&quot; src=&quot;//player.bilibili.com/player.html?bvid=BV1Ed426vEdg&quot; scrolling=&quot;no&quot; border=&quot;0&quot; frameborder=&quot;no&quot; framespacing=&quot;0&quot; allowfullscreen=&quot;true&quot;&amp;gt; &amp;lt;/iframe&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;lt;iframe width=&quot;100%&quot; height=&quot;468&quot; src=&quot;//player.bilibili.com/player.html?bvid=BV1Ed426vEdg&quot; scrolling=&quot;no&quot; border=&quot;0&quot; frameborder=&quot;no&quot; framespacing=&quot;0&quot; allowfullscreen=&quot;true&quot;&amp;gt; &amp;lt;/iframe&amp;gt;&lt;/p&gt;
</content:encoded></item><item><title>Honor10 鸿蒙3.0降级EMUI10</title><link>https://chinwilblog.eu.cc/posts/honor/honor10/</link><guid isPermaLink="true">https://chinwilblog.eu.cc/posts/honor/honor10/</guid><pubDate>Mon, 12 Oct 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;This Article is a Draft&lt;/h1&gt;
&lt;p&gt;This article is currently in a draft state and is not published. Therefore, it will not be visible to the general audience. The content is still a work in progress and may require further editing and review.&lt;/p&gt;
&lt;p&gt;When the article is ready for publication, you can update the &quot;draft&quot; field to &quot;false&quot; in the Frontmatter:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;---
title: Honor10 鸿蒙3.0降级EMUI10
published: 2026-10-12T23:49:20.381Z
tags: [Phone, Huawei, EMUI]
category: Phone
honor10: false
---&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>从零创建自己的博客</title><link>https://chinwilblog.eu.cc/posts/blog/blog/</link><guid isPermaLink="true">https://chinwilblog.eu.cc/posts/blog/blog/</guid><description>create owner blog</description><pubDate>Mon, 12 Oct 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;An h1 header&lt;/h1&gt;
&lt;p&gt;Paragraphs are separated by a blank line.&lt;/p&gt;
&lt;p&gt;2nd paragraph. &lt;em&gt;Italic&lt;/em&gt;, &lt;strong&gt;bold&lt;/strong&gt;, and &lt;code&gt;monospace&lt;/code&gt;. Itemized lists
look like:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;this one&lt;/li&gt;
&lt;li&gt;that one&lt;/li&gt;
&lt;li&gt;the other one&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Note that --- not considering the asterisk --- the actual text
content starts at 4-columns in.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Block quotes are
written like so.&lt;/p&gt;
&lt;p&gt;They can span multiple paragraphs,
if you like.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Use 3 dashes for an em-dash. Use 2 dashes for ranges (ex., &quot;it&apos;s all
in chapters 12--14&quot;). Three dots ... will be converted to an ellipsis.
Unicode is supported. ☺&lt;/p&gt;
&lt;h2&gt;An h2 header&lt;/h2&gt;
&lt;p&gt;Here&apos;s a numbered list:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;first item&lt;/li&gt;
&lt;li&gt;second item&lt;/li&gt;
&lt;li&gt;third item&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Note again how the actual text starts at 4 columns in (4 characters
from the left side). Here&apos;s a code sample:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# Let me re-iterate ...
for i in 1 .. 10 { do-something(i) }
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;As you probably guessed, indented 4 spaces. By the way, instead of
indenting the block, you can use delimited blocks, if you like:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;define foobar() {
    print &quot;Welcome to flavor country!&quot;;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;(which makes copying &amp;amp; pasting easier). You can optionally mark the
delimited block for Pandoc to syntax highlight it:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;import time
# Quick, count to ten!
for i in range(10):
    # (but not *too* quick)
    time.sleep(0.5)
    print i
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;An h3 header&lt;/h3&gt;
&lt;p&gt;Now a nested list:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;First, get these ingredients:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;carrots&lt;/li&gt;
&lt;li&gt;celery&lt;/li&gt;
&lt;li&gt;lentils&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Boil some water.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Dump everything in the pot and follow
this algorithm:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt; find wooden spoon
 uncover pot
 stir
 cover pot
 balance wooden spoon precariously on pot handle
 wait 10 minutes
 goto first step (or shut off burner when done)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Do not bump wooden spoon or it will fall.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Notice again how text always lines up on 4-space indents (including
that last line which continues item 3 above).&lt;/p&gt;
&lt;p&gt;Here&apos;s a link to &lt;a href=&quot;http://foo.bar&quot;&gt;a website&lt;/a&gt;, to a &lt;a href=&quot;local-doc.html&quot;&gt;local
doc&lt;/a&gt;, and to a &lt;a href=&quot;#an-h2-header&quot;&gt;section heading in the current
doc&lt;/a&gt;. Here&apos;s a footnote [^1].&lt;/p&gt;
&lt;p&gt;[^1]: Footnote text goes here.&lt;/p&gt;
&lt;p&gt;Tables can look like this:&lt;/p&gt;
&lt;p&gt;size material color&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;9 leather brown
10 hemp canvas natural
11 glass transparent&lt;/p&gt;
&lt;p&gt;Table: Shoes, their sizes, and what they&apos;re made of&lt;/p&gt;
&lt;p&gt;(The above is the caption for the table.) Pandoc also supports
multi-line tables:&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;keyword text&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;red Sunsets, apples, and
other red or reddish
things.&lt;/p&gt;
&lt;p&gt;green Leaves, grass, frogs
and other things it&apos;s
not easy being.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;A horizontal rule follows.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Here&apos;s a definition list:&lt;/p&gt;
&lt;p&gt;apples
: Good for making applesauce.
oranges
: Citrus!
tomatoes
: There&apos;s no &quot;e&quot; in tomatoe.&lt;/p&gt;
&lt;p&gt;Again, text is indented 4 spaces. (Put a blank line between each
term/definition pair to spread things out more.)&lt;/p&gt;
&lt;p&gt;Here&apos;s a &quot;line block&quot;:&lt;/p&gt;
&lt;p&gt;| Line one
| Line too
| Line tree&lt;/p&gt;
&lt;p&gt;and images can be specified like so:&lt;/p&gt;
&lt;p&gt;Inline math equations go in like so: $\omega = d\phi / dt$. Display
math should get its own line and be put in in double-dollarsigns:&lt;/p&gt;
&lt;p&gt;$$I = \int \rho R^{2} dV$$&lt;/p&gt;
&lt;p&gt;$$
\begin{equation*}
\pi
=3.1415926535
;8979323846;2643383279;5028841971;6939937510;5820974944
;5923078164;0628620899;8628034825;3421170679;\ldots
\end{equation*}
$$&lt;/p&gt;
&lt;p&gt;And note that you can backslash-escape any punctuation characters
which you wish to be displayed literally, ex.: `foo`, *bar*, etc.&lt;/p&gt;
</content:encoded></item></channel></rss>