100行代码构建自己的html服务器

100行的代码在哪里呢,

作为 emacs 用户,为啥不用 simple-httpd

在第九楼

我希望能够在不打开emacs的时候能继续看网页

改了一下 css-mode 的 company

(with-eval-after-load "css-mode"

(defun css--complete-property-value ()
  "Complete property value at point."
  (let ((property
         (save-excursion
           (re-search-backward "[:;][^/]" (line-beginning-position) t)
           (when (eq (char-after) ?:)
             (let ((property-end (point)))
               (skip-chars-backward "-[:alnum:]")
               (let ((prop (buffer-substring (point) property-end)))
                 (car (member prop css-property-ids))))))))
    (when property
      (let ((end (point)))
        (save-excursion
          (skip-chars-backward "[:graph:]")
          (list (point) end
                (append '("inherit" "initial" "unset")
                        (css--property-values property))))))))

(defconst css-property-ids-chong
  (mapcar (lambda (id) (concat id ": ")) css-property-ids))

(defun css--complete-property ()
  "Complete property at point."
  (save-excursion
    (let ((pos (point)))
      (skip-chars-backward "-[:alnum:]")
      (let ((start (point)))
        (skip-chars-backward " \t\r\n")
        (when (memq (char-before) '(?\{ ?\;))
          (list start pos css-property-ids-chong))))))
)

用了半天的时间 加了个颜色

源码有点长 改动的地方有点多 调试macro的时间最长

css-mode对company-capf的支持挺好的

要想让company不删除你的属性 需要在backend中添加 pre-render 选项

奇怪的是 pre-render 在2015年就有了 可连个文档都没有找到

想给颜色加上个排序 发现 不是那么简单

排序可以了

nginx用作代理服务器不错,网站服务器的话感觉还是apache更好

目前还是apache的天下,不过nginx配置简单,用习惯了。

你会PR到 company-mode 么?

还是等有需求的人去提issue吧

好像没有人有这样的需求

而且调试css直接用浏览器就行了 emacs帮不上什么忙 我只是为了了解下company-capf

再者代码中宏的实现不是很好 我也不打算继续在lisp上花时间了 向ocaml和tensorflow转

我发现了一个问题 就是 看文档容易了 但是 记录知识点却没那么容易

想了想 可以用markdown做记录 但我又想能用sqlite记录里面的代码和相关的概念点

发现python里有个包叫Markdown应该能做这样的事情

前些天在论坛里看到了kiwix离线wiki 和我想要的差不多

《更新》

我还是用 reStructedText 吧

看完了,谢谢分享,很赞!!!

但是这里构建html服务器和emacs的关系是?

关系是

我放弃了org-mode 选择了html

我发现coq中也使用了reStructedText